package org.jcodetools.fs;

import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;

import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;

/**
 * 图片压缩工具。使用本工具需要依赖于thumbnailator，在maven pom.xml中做如下配置：
 * <pre>
 * &lt;dependency&gt;
 *     &lt;groupId&gt;net.coobird&lt;/groupId&gt;
 *     &lt;artifactId&gt;thumbnailator&lt;/artifactId&gt;
 *     &lt;version&gt;0.4.8&lt;/version&gt;
 * &lt;/dependency&gt;
 * </pre>
 * Created by 熊彦 on 2017-06-20.
 *
 * @email javadevyan@163.com
 */
public class CompressUtils {
    public static void main(String[] args) {
        try {
            //按指定大小把图片进行缩和放（会遵循原图高宽比例）
            //此处把图片压成400×500的缩略图
            Thumbnails.of("F:\\复华商业集团\\内部资料\\ec-doc-master-7a94cc59012581f807c798aebd38404ed8d84ca8\\设计图\\白名单调试流程.png")
                      .size(100, 100)
//                      .keepAspectRatio(false)//false表示不遵循原图比例
                      .toFile("F:\\复华商业集团\\内部资料\\ec-doc-master-7a94cc59012581f807c798aebd38404ed8d84ca8\\设计图\\55555.png");

            //按照指定比例进行缩小和放大
            //按照比例进行缩小和放大
//            Thumbnails.of("").scale(0.2f).toFile("");//按比例缩小
//            Thumbnails.of("").scale(2f).toFile("");//按比例放大

            //图片尺寸不变，压缩图片文件大小
            //图片尺寸不变，压缩图片文件大小outputQuality实现,参数1为最高质量
            Thumbnails.of("F:\\复华商业集团\\内部资料\\ec-doc-master-7a94cc59012581f807c798aebd38404ed8d84ca8\\设计图\\运营后台功能.png")
                      .scale(1f)
                      .outputQuality(0.25f)//参数值只能在0到1之间
                      //添加水印
                      .watermark(Positions.CENTER, ImageIO.read(new File("F:\\复华商业集团\\内部资料\\ec-doc-master-7a94cc59012581f807c798aebd38404ed8d84ca8\\设计图\\55555.png")),0.5f)
                      .toFile("F:\\复华商业集团\\内部资料\\ec-doc-master-7a94cc59012581f807c798aebd38404ed8d84ca8\\设计图\\333.png");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
